package com.wyd.sort;

public class Test implements SortInterface {


//    // 冒泡
//    public  int[] sort(int[] sorts) {
//
//        for (int i = 0; i < sorts.length; i++) {
//            boolean flag = true;
//            for (int j = 0; j < sorts.length-i-1; j++) {
//                if (sorts[j] < sorts[j+1]){
//                    int tmp = sorts[j+1];
//                    sorts[j+1] = sorts[j];
//                    sorts[j] = tmp;
//                    flag = true;
//                }
//            }
//            if (!flag){
//                break;
//            }
//        }
//        return sorts;
//    }

//    // 选择排序
//    public  int[] sort(int[] sorts) {
//
//        for (int i = 0; i < sorts.length; i++) {
//            int min = i;
//            for (int j = i; j < sorts.length; j++) {
//                if (sorts[min] > sorts[j]){
//                    min = j;
//                }
//            }
//            if (min != i){
//                int tmp = sorts[i];
//                sorts[i] = sorts[min];
//                sorts[min] = tmp;
//
//            }
//        }
//        return sorts;
//    }

    // 插入排序
    public  int[] sort(int[] sorts) {
        for (int i = 1; i < sorts.length; i++) {
            int j = i;
            int tmp = sorts[i];
            for (; j > 0 ; j--) {
                if (tmp >= sorts[j-1] ){
                    break;
                }
                sorts[j]  = sorts[j-1];
            }
            if (i != j){
                sorts[j] = tmp;
            }
        }

        return sorts;
    }

    public static void main(String[] args) {
        int[] testSizes = new int[]{10};
        Test t = new Test();
        for (int size : testSizes) {
            int[] testdata = new int[size];
            for (int i = 0; i < size;) {
                testdata[i] = (int) (Math.random() * 10);
                if (i >0 &&  testdata[i]  !=  testdata[i-1] ){
                    i++;
                }else{
                    if (i == 0){
                        i++;
                    }
                }
            }

            long start = System.currentTimeMillis();
            int[] res1 =   t.sort(testdata);
            long time = (System.currentTimeMillis() - start);


            for (int i : res1) {
                System.out.println(i);
            }
            System.out.println("数据量：" + size + " 耗时：" + time );

        }

    }
}
